package validate

// CreateOrUpdateMenuRequest 菜单创建/更新参数
type CreateOrUpdateMenuRequest struct {
	ID           uint64  `json:"id"`                       // 修改时使用
	ParentID     uint64  `json:"parent_id"`                // 父菜单ID
	Title        string  `json:"title" binding:"required"` // 标题
	Icon         string  `json:"icon"`                     // 图标
	Path         string  `json:"path" binding:"required"`  // 前端路径
	PermissionID *uint64 `json:"permission_id"`            // 可选权限ID
	Sort         int     `json:"sort"`                     // 排序
	IsHidden     bool    `json:"is_hidden"`                // 是否隐藏
}

// MenuTree 菜单结构体，递归嵌套
type MenuTree struct {
	ID       uint64     `json:"id"`
	Title    string     `json:"title"`
	Icon     string     `json:"icon"`
	Path     string     `json:"path"`
	Children []MenuTree `json:"children,omitempty"`
}
